import {
	getWxSign
} from '@/api/userApi.js'
/**
 * @param {string[]} selectedUserIds 默认选择的用户id
 * @returns {Promise<{
	 avatar:string;
	 id:string;
	 name:string;
 }[]>}
 */
export const choosePeople = async (selectedUserIds=[]) => {
	const res = await getWxSign({
		url: encodeURIComponent(window.location.href.split('#')[0]) // 注意：location.href
	})
	return new Promise((reslove, reject) => {
	
		console.log(window.jWeixin, "window.jWeixin")
		console.log(window.wx, "window.wx")
		const u = navigator.userAgent,
			isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
			isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
		if (isAndroid) {
			window.wx = window.jWeixin
		}
		 var wx = window.wx ? window.wx : window.jWeixin;
		console.log(wx, "wx")
		// 步骤二：通过config接口注入权限验证配置
		wx.config({
			beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
			appId: res.data.qiye.corpid, // 必填，企业微信的corpID。公司的唯一标识‘ww20745c5e79cfa434’
			timestamp: res.data.qiye.timestamp, // 必填，生成签名的时间戳
			nonceStr: res.data.qiye.nonceStr, // 必填，生成签名的随机串，这里用的是自定义方法
			signature: res.data.qiye
				.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法 https://work.weixin.qq.com/api/doc/90000/90136/90506
			jsApiList: res.data.qiye.jsApiList, // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来。所有JS接口列表见附录2
			success: function(res) {
				// 回调
				console.log("===========222成功")

			},
			fail: function(res) {
				console.log("===========111失败")
			},
		});
		// 步骤三：通过ready接口处理成功验证。没有需要立即调用的api，可以不写
		wx.ready(function() {
			wx.agentConfig({
				corpid: res.data.app.corpid, // 必填，企业微信的corpid，必须与当前登录的企业一致
				agentid: res.data.app.agentid, // 必填，企业微信的应用id （e.g. 1000247）
				timestamp: res.data.app.timestamp, // 必填，生成签名的时间戳
				nonceStr: res.data.app.nonceStr, // 必填，生成签名的随机串
				signature: res.data.app.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
				jsApiList: res.data.app.jsApiList, //必填，传入需要使用的接口名称
				success: function(res) {
					wx.invoke("selectEnterpriseContact", {
						"fromDepartmentId": -
						1, // 必填，表示打开的通讯录从指定的部门开始展示，-1表示自己所在部门开始, 0表示从最上层开始
						"mode": "multi", // 必填，选择模式，single表示单选，multi表示多选
						"type": ["user"], // 必填，选择限制类型，指定department、user中的一个或者多个
						"selectedDepartmentIds": ["2",
						"3"], // 非必填，已选部门ID列表。用于多次选人时可重入，single模式下请勿填入多个id
						"selectedUserIds": selectedUserIds // 非必填，已选用户ID列表。用于多次选人时可重入，single模式下请勿填入多个id
					}, function(res) {
						console.log(res)
						if (res.err_msg == "selectEnterpriseContact:ok") {
							if (typeof res.result == 'string') {
								res.result = JSON.parse(res
									.result) //由于目前各个终端尚未完全兼容，需要开发者额外判断result类型以保证在各个终端的兼容性
							}
							reslove(res.result.userList.map(ele=>({
								...ele,
								nickname: ele.name,
								username: ele.name
							})));
						}
					});


				},
				fail: function(res) {
					console.log("======reslog", res)
					alert('选择出错')
					if (res.errMsg.indexOf('function not exist') > -1) {
						alert('版本过低请升级')
					}
				}
			});
		});

	})
}
